#pragma once

#include <iostream>
#include <semaphore.h>

class Sem
{
public:
    Sem(int value)  // sem_init函数的参数 sem_init(sem_t* sem, int pshared,  unsigned int value);
    {
        sem_init(&_sem, 0, value);
    }

    void V() // 申请资源
    {
        sem_wait(&_sem);
    }

    void P() // 释放资源
    {
        sem_post(&_sem);
    }

    ~Sem()
    {
        sem_destroy(&_sem);
    }
private:
    sem_t _sem;
};
